import axios from "axios";
//这里不能用@ 可能这个nuxt执行这个的时候vue的环境 还没生成 
import { requestData } from './common' 
// 环境参数
const env = process.env.NODE_ENV  
const model = {
  development: {
    LOCAL_PROT: 8001,
    BASE_HOST: "0.0.0.0",
    // BASE_API: "http://127.0.0.1:9090"
    BASE_API: "http://serve.wczw.top"

    // BASE_API: "http://serve.wczw.top:9090"
  },
  production: {
    LOCAL_PROT: 8001,
    BASE_HOST: "0.0.0.0",
    // BASE_API: "http://127.0.0.1:9090"
    BASE_API: "http://serve.wczw.top"
  }
};
// 发现在其他文件中写环境参数 会访问不到  例如
// 在env.js中写这个参数就不能行  所以 干脆在这个文件中写 这个变量参数
// 但是会造成引用其他文件的时候 ‘@’ 符号 不能用  因为 在执行nuxt配置的时候
// vue 的环境还没有生成  
// 以上都时我的猜想
export const ENV = model[env]
// 创建axios 实例
const service = axios.create({
  baseURL: ENV.BASE_API,
  timeout: 15000,
});
service.interceptors.request.use(
  config => {
    config.headers = {
      "Content-Type": config.contentType || "application/x-www-form-urlencoded",
      "token": 131431,
    };
    config.data = config.contentType ? config.data : requestData(config.data)
    config.params = config.contentType ? config.params : requestData(config.params)
    return config;
  },
  error => {
    Promise.reject(error);
  }
);
// axios 拦截器
service.interceptors.response.use(
  response => {
    if (response.status == 200) {
      const res = response.data;
      if (res.code === 200 || res.status === 200) { 
        return Promise.resolve(res);
      } else if(res.code == 401){
        return Promise.resolve(res);
      }else{
        return Promise.reject(response);
      }
    }else{
      return Promise.reject(response);
    }
  },
  error => {
    return Promise.reject(error);
  }
);
// 导出axios实例
export default service;
